#include <stdio.h>
#include "../outcode.h"

void main()
{
    unsigned char uc = 254; // 1111 1110
    char c = uc; // 1111 1110
    int i;    unsigned ui;

    i = uc; // 无符号小字长转有符号大字长，机器码零扩展
    ui = uc; // 无符号小字长转无符号大字长，机器码零扩展

    out_1byte(&uc); printf(" = uc = %d\n", uc); // 输出原数据的机器码和真值 FE = uc = 254
    out_4byte((char *)&i); printf(" = i = %d\n", i); // 输出转换后的的机器码和真值 000000FE = i = 254
    out_4byte((char *)&ui); printf(" = ui = %u\n", ui); // 输出转换后的的机器码和真值 000000FE = ui = 254

    i = c; // 有符号小字长转有符号大字长，机器码符号扩展
    ui = c; // 有符号小字长转无符号大字长，机器码符号扩展

    out_1byte(&c); printf(" = c = %d\n", c); // 输出原数据的机器码和真值 FE = c = -2
    out_4byte((char *)&i); printf(" = i = %d\n", i); // 输出转换后的的机器码和真值 FFFFFFFE = i = -2
    out_4byte((char *)&ui); printf(" = ui = %u\n", ui); // 输出转换后的的机器码和真值 FFFFFFFE = ui = 4294967294

}